#pragma once

#include "molecular_atom.h"
#include "models/atom_interface/ai_config.h"
#include <vector>

class Config :
    public M::Atom
{
public:
    Config();
    virtual ~Config();

    virtual M::String name() const { return PAN_CONFIG; }
    virtual bool OnExecute(const M::AtomEndPoint &oSrcAtom, int nFuncId, void *pParams, void *pIOParams);

protected:
    bool OnSetConfig(PokeConfig *pParams);
    bool OnGetConfig(PokeConfig *pParams);
    bool OnGetConfigCursor(PokeConfigCursor *pParams);
    bool OnUsePrevConfig(bool bUpdate);
    bool OnUseNextConfig(bool bUpdate);

private:
    std::vector<PokeConfig> m_vConfigs;
    size_t m_nNowPos;
};